This invention relates to server systems and, more particularly, to successful initialization of servers.
A headless server is a server system which includes no keyboard, no mouse and no monitor. As expected, headless server systems typically operate without any human intervention. Because of this, headless server systems have higher reliability requirements than most other computer systems. Further, headless server systems ideally operate using minimal or no manual steps.
For a typical computer system, the “boot” process is executed by a program, usually located in read-only memory (ROM) of the computer system. The ROM program may be described as including two separate processes: the power-on self test, or POST, and the basic input/output system, or BIOS. The POST part of the program executes commands such that different circuitry and components of the computer system may be initialized. The BIOS portion includes functions which may be used by software, including POST, for communicating with different devices in the computer system.
Upon receiving power to the computer system, the POST program in the ROM immediately begins execution. The POST performs initialization functions, such as detecting and testing the memory, the display, the non-volatile media, such as hard disk and floppy disk drives, and so on. In some systems, an abbreviated POST, or “quick-boot,” may be available.
Once the POST routine completes initialization and testing of the system, control is typically transferred to an operating system, usually located on the hard disk drive. Once the operating system gains control of the system, all runtime operations of the system, including any execution of application programs, are controlled by the operating system. The operating system may or may not utilize the BIOS functions in communicating with the hardware of the computer system.
Currently, boot processes are designed for systems with a monitor, a keyboard and a mouse. These processes assume that the user is present in front of the system, and may thus be available to respond to any POST or operating system errors. These errors may take the form of beeps, screen displays, or other indicia. Typically, execution of either the POST or operating system program will stop once these errors occur. Manual intervention is generally the only way for the boot process to proceed. Contingencies, such as automatic attempts to boot from other devices, are typically not executed by the POST or operating system programs. Further, information is typically not shared between the operating system and the POST routine.
Thus, there is a continuing need for a reliable and automated initialization process which may be assisted remotely.